/**************************************************************************
 *  创建者：        hualei
 *  开始时间：   2018.06.23
 *  copyright:  (C) 深圳市华友高科有限公司
 *  修改说明：  (每次有修改就添加一条，带有 修改人，修改时间，修改描述)
 *
 ***************************************************************************
 *   TCP_READ TCP接收指令属性编辑视窗类
 *
 ***************************************************************************/
#ifndef TCPREADINSTRUCTIONVIEW_H
#define TCPREADINSTRUCTIONVIEW_H

#include <QWidget>
#include <QObject>
#include "tcpreadinstructionview_global.h"
#include <QTranslator>
#include <QVector>
#include <QIntValidator>
#include "instructionEnum.h"

class ProgramView;

namespace Ui {
class TCPReadInstructionView;
}

//enum EM_TCP_READ_BUS_TYPE
//{
//    E_TCP_READ_CLIENT,
//    E_TCP_READ_SERVER

//};

/**
 * @brief The TCPReadInstructionView class    TCP接收指令属性编辑视窗
 */
class TCPREADINSTRUCTIONVIEWSHARE_EXPORT TCPReadInstructionView : public QWidget
{
    Q_OBJECT

public:
    /**
     * @brief TCPReadInstructionView        构造函数
     * @param parent
     */
    explicit TCPReadInstructionView(int styleId,QWidget *parent = 0);
    
    /**
     * @brief getInput          获取用户输入数据
     */
    void getInput();
    
    /**
     * @brief updateView        更新数据到视图
     */
    void updateView();
    
    /**
     * @brief changLanguage     更改语言
     * @param language          语言编号
     */
    void changLanguage(int language);

    void initialDisplayStyle(int styleId);
    
public:
    
    /**
     * @brief programView       指令程序编辑主视图对象
     */
    ProgramView *programView;    
    
    /**
     * @brief tcpReadRegBeginAddress    接收数据起始寄存器地址
     */
    int tcpReadRegBeginAddress;

    /**
     * @brief tcpReadRegLength          接收数据寄存器长度
     */
    int tcpReadRegLength;

    /**
     * @brief tcpReadIPVec              发送数据客户端IP
     */
    QVector <int> tcpReadClientIPVec;

    /**
     * @brief tcpReadServerIPVec        发送数据服务器端IP
     */
    QVector <int> tcpReadServerIPVec;

    /**
     * @brief tcpReadBusType            TCP_READ 读取指令总线类型
     */
    EM_TCP_READ_BUS_TYPE tcpReadBusType;

    /**
     * @brief tcpReadPort               端口号
     */
    int tcpReadPort;

    /**
     * @brief jmpLBValue                跳转标签号
     */
    int jmpLBValue;
   
    /**
     * @brief noteStr                   注释
     */
    QString noteStr;

    /**
     * @brief instructionOut            编辑好的指令字符串
     */
    QString instructionOut;

signals:
    /**
     * @brief cleanNoteStrSignal            清除注释信号
     */
    void cleanNoteStrSignal();

    /**
     * @brief finishEditInstructionSignal       指令属性编辑完成信号
     */
    void finishEditInstructionSignal();

    /**
     * @brief saveInstruction                   保存编辑完成的指令信号
     * @param instructionStr                     编辑完成的指令
     */
    void saveInstruction(QString instructionStr);

private slots:
    /**
     * @brief on_clearNote_Btn_clicked              点击清除响应槽函数
     */
    void on_clearNote_Btn_clicked();
    
    /**
     * @brief on_save_Btn_clicked                   点击保存响应槽函数
     */
    void on_save_Btn_clicked();
    
    /**
     * @brief on_forward_Btn_clicked                 点击上一页响应槽函数
     */
    void on_forward_Btn_clicked();
    
    /**
     * @brief on_CLIENT_radioButton_clicked
     */
    void on_CLIENT_radioButton_clicked();

    /**
     * @brief on_SERVER_radioButton_clicked
     */
    void on_SERVER_radioButton_clicked();

private:
    Ui::TCPReadInstructionView *ui;

    /**
     * @brief translator                            翻译
     */
    QTranslator translator;

    int ip1,ip2,ip3,ip4;
    
};

#endif // TCPREADINSTRUCTIONVIEW_H
